/*************************************************
  * 描述：颜色选取器控件
  *
  * File：cxicolorpicker.h
  * Author：dongyao@mozihealthcare.cn
  * Date：2025/9/26
  * Update：
  * ************************************************/
#ifndef CXICOLORPICKER_H
#define CXICOLORPICKER_H

#include <QWidget>
#include <controls/export.h>
class CxiColorPickerPrivate;

class CXI_CONTROLS_EXPORT CxiColorPicker : public QWidget
{
	Q_OBJECT

public:
	enum DisplayType
	{
		RGB,// 如 "255, 255, 255"
		HEX // 如 "#FFFFFF"
	};
	explicit CxiColorPicker(QWidget* parent = nullptr);
	~CxiColorPicker() override;
	/**
     * @brief setDisplayType 设置颜色显示类型
     * @param type  RGB 或 HEX
     */
	void setDisplayType(DisplayType type);
	/**
     * @brief setColor 设置当前颜色 通过标准颜色格式设置
     * @param color QColor类型
     */
	void setColor(QColor& color);
	/**
     * @brief setColor 设置当前颜色 通过rgb值设置
     * @param r 红色分量
     * @param g 绿色分量
     * @param b 蓝色分量
     */
	void setColor(int r, int g, int b);
	/**
     * @brief setColor 设置当前颜色 通过颜色字符串设置
     * @param color 颜色字符串
     */
	void setColor(QString color);
	/**
     * @brief getColor 获取当前选中颜色
     * @return QColor类型
     */
	QColor getCurrentColor();
	/**
     * @brief getCurrentColorText 获取当前选中颜色文本
     * @return  QString 类型
     */
	QString getCurrentColorText();

protected:
	void mousePressEvent(QMouseEvent* event) override;

private:
	Q_DECLARE_PRIVATE(CxiColorPicker)
	QScopedPointer<CxiColorPickerPrivate> d_ptr;
};


#endif//CXICOLORPICKER_H
